COVID-19 ဗိုင်းရပ်၏အမည်မှာ Severe Acute Respiratory Syndrome Coronavirus 2 (SARS-CoV-2) ဖြစ်ပြီးထိုဗိုင်းရပ်ကြောင့်ဖြစ်သောရောဂါကို coronavirus disease(COVID-19) ဟုခေါ်ပါသည်။ Corona ဟူသောစကားလုံးသည် Latin ဘာသာဖြင့်ရေးသားထားခြင်းဖြစ်ပြီး English လို Crown ဟုအဓိပ္ပါယ်ရပါသည်။ ဗိုင်းရပ်၏ပုံသဏ္ဍပေါ်အခြေခံ၍ရေးသားခြင်းဖြစ်ပါသည်။ ဗိုင်းရပ်၏အမည်ပေးခြင်းကို International Committee on Taxonomy of Viruses (ICTV) မှပြုလုပ်ပြီး ရောဂါ၏အမည်ပေးခြင်းကို WHO မှပြုလုပ်ခြင်းဖြစ်ပါသည်။

WHO'S NAMING-and-the-virus-that-causes-it)

WHO-Coronavirus

MOHS

COVID-19 ရောဂါနှင့်ပတ်သက်၍လေ့လာတွေ့ရှိမှု့အသစ်

COVID-19 ရောဂါကြောင့်ဖြစ်ပေါ်လာသောရောဂါလက္ခဏာအသစ်(COVID toes)

အထက်ပါ website များမှတဆင့်သတင်းအချက်အလက်များရယူနိင်ပါသည်။


In [1]:
%store -r __importing_Lib
In [2]:
__importing_Lib
matplotlib inline backend and ggplot style are used.
Mplotlib version : 3.1.3
Numpy version	 : 1.18.1
Pandas version	 : 1.0.1
Seaborn version	 : 0.10.0
Folium version	 : 0.10.1
Other imported is: Waffle      
		 : datetime      
		 : base64      
		 : Json
In [3]:
import matplotlib as mpl
from matplotlib.legend import Legend
from folium import plugins
from graphviz import Digraph
import os
import datetime
from matplotlib import gridspec
os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz2.38/bin/'
mpl.rcParams['xtick.minor.size'] = 0
mpl.rcParams['xtick.minor.width'] = 0
mpl.rcParams['ytick.minor.size'] = 0
mpl.rcParams['ytick.minor.width'] = 0
plt.rcParams['font.weight'] = 'bold'
plt.rcParams['axes.labelweight'] = 'bold'
plt.rcParams['axes.titleweight'] = 'bold'


In [4]:
covid_df = pd.read_excel('covid/COVID-19-2020-05-31.xlsx', parse_dates=['dateRep'])
covid_df.rename(columns={'countryterritoryCode': 'Country_Code'}, inplace=True)
print(covid_df.shape)
cc_dict = {
            'Anguilla': 'AIA', 'Bonaire, Saint Eustatius and Saba': 'BES',
            'Czechia': 'CZE', 'Falkland_Islands_(Malvinas)': 'FLK'
          }
covid_df.query('countriesAndTerritories!=["Cases_on_an_international_conveyance_Japan"]', inplace=True)
for c_name, c_code in cc_dict.items():
    covid_df.loc[covid_df.countriesAndTerritories==c_name, 'Country_Code'] = c_code
print(covid_df.shape)
start_date = covid_df.dateRep.min().strftime('%d-%m-%Y')
last_date = covid_df.dateRep.max().strftime('%d-%m-%Y')
print(f'start_date: {start_date}', f'last_date : {last_date}', sep='\n')
total_death = covid_df.deaths.sum()
total_cases = covid_df.cases.sum()
overall_death_rate = total_death / total_cases * 100
print(f'total_death: {total_death:7,}\ntotal_cases: {total_cases:7,}\noverall_death_rate: {overall_death_rate:.3f}%')
covid_df.head()
(20502, 11)
(20438, 11)
start_date: 31-12-2019
last_date : 31-05-2020
total_death: 368,937
total_cases: 6,027,439
overall_death_rate: 6.121%
Out[4]:
dateRep day month year cases deaths countriesAndTerritories geoId Country_Code popData2018 continentExp
0 2020-05-31 31 5 2020 866 3 Afghanistan AF AFG 37172386.0 Asia
1 2020-05-30 30 5 2020 623 11 Afghanistan AF AFG 37172386.0 Asia
2 2020-05-29 29 5 2020 580 8 Afghanistan AF AFG 37172386.0 Asia
3 2020-05-28 28 5 2020 625 7 Afghanistan AF AFG 37172386.0 Asia
4 2020-05-27 27 5 2020 658 1 Afghanistan AF AFG 37172386.0 Asia


In [5]:
region_df = pd.read_csv('life_expectancy/Metadata_Country.csv', usecols=[0, 1, 2])
region_df.columns = 'Country_Code', 'Region', 'IncomeGroup'
region_df.dropna(subset=['IncomeGroup'], inplace=True)
region_df.head()
Out[5]:
Country_Code Region IncomeGroup
0 ABW Latin America & Caribbean High income
1 AFG South Asia Low income
2 AGO Sub-Saharan Africa Lower middle income
3 ALB Europe & Central Asia Upper middle income
4 AND Europe & Central Asia High income


In [6]:
region_dict = {'Anguilla': ['Latin America & Caribbean', 'High income'],
               'Bonaire, Saint Eustatius and Saba': ['Latin America & Caribbean', 'High income'],
               'Falkland_Islands_(Malvinas)': ['Latin America & Caribbean', 'High income'],
               'Guernsey': ['Europe & Central Asia', 'High income'],
               'Holy_See': ['Europe & Central Asia', 'High income'],
               'Jersey': ['Europe & Central Asia', 'High income'],
               'Montserrat': ['Latin America & Caribbean', 'Upper middle income'],
               'Taiwan': ['East Asia & Pacific', 'High income']
               }
In [7]:
merge_df = covid_df.merge(region_df, on='Country_Code', how='left')
for cname, (reg, level) in region_dict.items():
    merge_df.loc[merge_df.countriesAndTerritories==cname, ['Region', 'IncomeGroup']] = reg, level
col_to_keep = ['dateRep', 'cases', 'deaths', 'Country_Name', 'Region', 'IncomeGroup']
merge_df = merge_df.rename(columns={'countriesAndTerritories': 'Country_Name'}).loc[:, col_to_keep]
merge_df.head()
Out[7]:
dateRep cases deaths Country_Name Region IncomeGroup
0 2020-05-31 866 3 Afghanistan South Asia Low income
1 2020-05-30 623 11 Afghanistan South Asia Low income
2 2020-05-29 580 8 Afghanistan South Asia Low income
3 2020-05-28 625 7 Afghanistan South Asia Low income
4 2020-05-27 658 1 Afghanistan South Asia Low income


In [8]:
country_df = (merge_df.groupby(['Country_Name', 'IncomeGroup'])
                      .agg({'cases': 'sum', 'deaths': 'sum'})
                      .reset_index([0, 1]))
country_df.Country_Name.replace({'Democratic_Republic_of_the_Congo': 'Congo', 'United_States_of_America': 'USA'},
                                inplace=True)
country_df['c_proportion'] = country_df.cases / total_cases * 100
country_df['d_proportion'] = country_df.deaths / total_death * 100
country_df['death_rate'] = country_df.deaths / country_df.cases * 100
country_df.sort_values(['d_proportion', 'c_proportion', 'death_rate'], ascending=False).head()
Out[8]:
Country_Name IncomeGroup cases deaths c_proportion d_proportion death_rate
200 USA High income 1770384 103781 29.372077 28.129735 5.862062
197 United_Kingdom High income 272826 38376 4.526400 10.401776 14.066108
98 Italy High income 232664 33340 3.860081 9.036773 14.329677
27 Brazil Upper middle income 498440 28834 8.269515 7.815426 5.784849
69 France High income 151496 28771 2.513439 7.798350 18.991260


In [9]:
case_name_lst = []
case_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
income_grp = country_df.groupby('IncomeGroup')
for g_name, grp in income_grp:
    temp = grp.sort_values('cases').tail()
    case_name_lst.append(temp.Country_Name.iloc[-1])
    case_quan_lst.append(temp.cases.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.cases, color='steelblue')
    ax.set_xlabel('Number of patients')
    ax.xaxis.set_label_coords(0.5, -0.123)
    
    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
    
    for i, v in enumerate(temp.cases):
        if g_name=='High income':
            x = v-310_000 if v > 1_700_000 else v-230_000 if v > 230_000 else v+800
            
        elif g_name=='Upper middle income':
            x = v-73_000
            
        elif g_name=='Lower middle income':
            x = v-27_000 if v > 180_000 else v-23_000 if v > 25_000 else v-22_000
        
        else:
            x = v-1_800 if v > 10_000 else v-1_500
            
        ax.text(x, i-0.1, f'{v:,}', color='white' if x < v else 'k')

plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.5)
fig.text(.5, 0.925, f'\nCOVID-19 Patients of all countries are analysed by IncomeGroup from \ {start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_01', fontdict={'size':'x-large', 'ha':'center'});


In [10]:
cases_df = country_df.set_index('Country_Name').cases.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(cases_df.index, cases_df, color='steelblue')
for i, v in enumerate(cases_df):
    x = (v-170_000 if v > 1_700_000 else v-140_000 if v > 180_000 else v-135_000) 
    ax.text(x, i-0.1, f'{v:,}', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlabel('Number of patients\nFig_02')
ax.set_title(f'\nCOVID_19 patients of top ten countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [11]:
top_cases = (country_df.sort_values('cases', ascending=False, ignore_index=True)
                        [['Country_Name', 'cases', 'c_proportion']].head(3))
fcn, scn, tcn = top_cases.Country_Name
fcq, scq, tcq = top_cases.cases
fcp, scp, tcp = top_cases.c_proportion
top_cases
Out[11]:
Country_Name cases c_proportion
0 USA 1770384 29.372077
1 Brazil 498440 8.269515
2 Russia 396575 6.579494


In [12]:
death_name_lst = []
death_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
for g_name, grp in income_grp:
    temp = grp.sort_values('deaths').tail()
    death_name_lst.append(temp.Country_Name.iloc[-1])
    death_quan_lst.append(temp.deaths.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.deaths, color='steelblue')
    ax.set_xlabel('Number of patients')
    ax.xaxis.set_label_coords(0.5, -0.123)
    for i, v in enumerate(temp.deaths):
        if g_name=='High income':
            x = v-15_500 if v > 100_000 else v-13_000
            
        elif g_name=='Upper middle income':
            x = v-3_800 if v > 20_000 else v-3_100
            
        elif g_name=='Lower middle income':
            x = v-550 if v > 1_000 else v-400

        else:
            x = v-20 if v > 100 else v-15
        ax.text(x, i-0.1, f'{v:,}', color='white')

    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.5)
fig.text(.5, 0.925, f'\nDeaths of COVID-19 Patients of all countries are analysed by IncomeGroup from \
{start_date} to {last_date}', fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_03', fontdict={'size':'x-large', 'ha':'center'});


In [13]:
deaths_df = country_df.set_index('Country_Name').deaths.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(deaths_df.index, deaths_df, color='steelblue')
for i, v in enumerate(deaths_df):
    x = v-8_500 if v > 100_000 else v-7_300 if v > 20_000 else v-6_000
    ax.text(x, i-0.1, f'{v:,}', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
ax.set_xlabel('Number of deaths\nFig_04')
ax.set_title(f'\nTen highest death toll countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [14]:
top_deaths = (country_df.sort_values('deaths', ascending=False, ignore_index=True)
                         [['Country_Name', 'deaths', 'd_proportion']].head(3))
fdn, sdn, tdn = top_deaths.Country_Name
fdq, sdq, tdq = top_deaths.deaths
fdp, sdp, tdp = top_deaths.d_proportion
top_deaths
Out[14]:
Country_Name deaths d_proportion
0 USA 103781 28.129735
1 United_Kingdom 38376 10.401776
2 Italy 33340 9.036773


In [15]:
drate_name_lst = []
drate_quan_lst = []
fig, ((ax1, ax2), (ax3, ax4))= plt.subplots(2, 2, figsize=(15, 10))
for g_name, grp in income_grp:
    temp = grp.sort_values('deaths', ascending=False).head(10).sort_values('death_rate').tail()
    drate_name_lst.append(temp.Country_Name.iloc[-1])
    drate_quan_lst.append(temp.death_rate.iloc[-1])
    ax = (ax1 if g_name=='High income' else ax2
             if g_name=='Upper middle income' else ax3
             if g_name=='Lower middle income' else ax4)
    ax.set_title(g_name, y=1.035)
    ax.barh(temp.Country_Name, temp.death_rate, color='steelblue')
    ax.set_xlabel('Death rate')
    ax.xaxis.set_label_coords(0.5, -0.123)
    for label in ax.get_xticklabels()[1::2]:
        label.set_visible(False)
    ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:.0f}%'))
    
    for i, v in enumerate(temp.death_rate):
        if g_name == 'High income':
            x = v-2.74
            
        elif g_name == 'Upper middle income':
            x = v-1.55 if v > 10 else v-1.35
        
        elif g_name == 'Low income':
            x = v-3.5 if v > 10 else v-3
            
        else:
            x = v-0.75
            
        ax.text(x, i-0.1, f'{v:.2f}%', color='white')

plt.subplots_adjust(top=0.85, wspace=0.33, hspace=0.5)
fig.text(.5, 0.925, f'\nDeath rate of COVID-19 Patients of top five countries for each IncomeGroup from \
{start_date} to {last_date}', fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_05', fontdict={'size':'x-large', 'ha':'center'});


In [16]:
death_rate_df = country_df.sort_values('deaths').tail(10)
death_rate_ten = death_rate_df.set_index('Country_Name').death_rate.sort_values().tail(10)
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.barh(death_rate_ten.index, death_rate_ten, color='steelblue')
for i, v in enumerate(death_rate_ten):
    x = v-1.48 if v > 11 else v-1.28
    ax.text(x, i-0.1, f'{v:.2f}%', color='white')

for label in ax.get_xticklabels()[1::2]:
    label.set_visible(False)
ax.xaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:.0f}%'))
ax.set_xlabel('Death rate\nFig_06')
ax.set_title(f'\nTen highest death rate countries from {start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.07)
In [17]:
drate_df = death_rate_ten.tail(3)
trn, srn, frn = drate_df.index
tr, sr, fr = drate_df
print(f'USA: {death_rate_ten["USA"]}')
drate_df
USA: 5.862061564044863
Out[17]:
Country_Name
Italy      14.329677
Belgium    16.246176
France     18.991260
Name: death_rate, dtype: float64


In [18]:
color_dict = {'cases': 'orange', 'deaths': 'red', 'death_rate': 'steelblue'}
cumsum_df = covid_df.groupby('dateRep')[['cases', 'deaths']].sum().cumsum()
cumsum_df.query('deaths > 0', inplace=True)
cumsum_df['death_rate'] = cumsum_df.deaths / cumsum_df.cases * 100
temp_first_date = cumsum_df.index.min().strftime('%d-%m-%Y')
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.plot(cumsum_df.index, cumsum_df.death_rate, color='steelblue')
ax.xaxis.set_major_locator(plt.MaxNLocator(11))
ax.set_ylabel('Death rate')
ax.set_xlabel('Date\nFig_07')
ax.set_title(f'\nCOVID-19 Death rate for the whole world from {temp_first_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.18)
ax.set_xlim([737432, 737578])
fig.autofmt_xdate(rotation=45);
In [19]:
max_day = cumsum_df.death_rate.idxmax()
min_day = cumsum_df.death_rate.idxmin()
max_drate = cumsum_df.loc[max_day].death_rate
min_drate = cumsum_df.loc[min_day].death_rate
print(min_day.strftime('%d-%m-%Y'), min_drate)
print(max_day.strftime('%d-%m-%Y'), max_drate)
pd.concat([cumsum_df.head(1), cumsum_df.tail(1)])
20-01-2020 1.2552301255230125
25-04-2020 7.281853490878204
Out[19]:
cases deaths death_rate
dateRep
2020-01-11 59 1 1.694915
2020-05-31 6027439 368937 6.120958


In [20]:
period_df = covid_df.groupby('dateRep').agg({'cases': 'sum', 'deaths': 'sum'})
cases_max_day = period_df.cases.idxmax()
deaths_max_day = period_df.deaths.idxmax()
print('Cases:', cases_max_day.strftime('%d-%m-%Y'), f'{period_df.loc[cases_max_day].cases:>8,}')
print('Deaths:', deaths_max_day.strftime('%d-%m-%Y'), f'{period_df.loc[deaths_max_day].deaths:>7,}')
period_df.info()
period_df.head()
Cases: 31-05-2020  127,605
Deaths: 16-04-2020  10,520
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 153 entries, 2019-12-31 to 2020-05-31
Data columns (total 2 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   cases   153 non-null    int64
 1   deaths  153 non-null    int64
dtypes: int64(2)
memory usage: 7.6 KB
Out[20]:
cases deaths
dateRep
2019-12-31 27 0
2020-01-01 0 0
2020-01-02 0 0
2020-01-03 17 0
2020-01-04 0 0
In [21]:
fig, ax= plt.subplots(1, 1, figsize=(12, 8))
ax.plot(period_df.cases, color='steelblue')
ax.plot(period_df.deaths, color='red')
ax.semilogy()
ax.xaxis.set_major_locator(plt.MaxNLocator(11))
ax.set_yticklabels([0.01, 0.1, '1', '10', '100', '1,000', '10,000', '100,000'])
ax.set_xlabel('Date\nFig_08')
ax.set_title(f'\nInfected and death of people around the world by COVID_19 from {start_date} to {last_date}', y=1.035)
ax.set_ylabel('Number of people')
ax.xaxis.set_label_coords(0.5, -0.18)
ax.set_xlim([737420, 737580])
fig.autofmt_xdate(rotation=45);


Animated Bubble plot for COVID-19 for weekly


  1. low income \$1,025 or less
  2. lower middle income \$1,026 and \$3,995
  3. Upper middle income \$3,996 and \$12,375
  4. High income \$12,376 or more

Classifying countries by income(World Bank)

COVID-19 ရောဂါကူးစက်ခံရသူ၊ သေဆုံးသူများ၏အရေအတွက်နှင့်ပတ်သက်သော သတင်းအချက်အလက်ကို European Centre for Disease Prevention and Control (ECDC) မှရယူခဲ့ပါသည်။

31-12-2019 မှ 31-05-2020 အထိတစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးစက်ခံရသူအရေအတွက်မှာ 6,027,439 ယောက်ဖြစ်ပြီး သေဆုံးသူအရေအတွက်မှာ 368,937 ယောက်ဖြစ်ပါသည်။ ပျမ်းမျှသေဆုံးနှုန်းမှာ 6.12% ဖြစ်ပါသည်။

ဝင်ငွေအုပ်စုအလိုက် COVID-19 ရောဂါကူးစက်ခံရမှု့ကိုလေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 1,770,384 ယောက်ဖြင့် USA မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 498,440 ယောက်ဖြင့် Brazil မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 182,143 ယောက်ဖြင့် India မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 14,525 ယောက်ဖြင့် Afghanistan တို့သည်ရောဂါကူးစက်ခံရမှု့အမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_01)။

တစ်ကမ္ဘာလုံးအနေဖြင့်လေ့လာကြည့်လျှင် ရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးတိုင်းပြည်မှာ USA ဖြစ်ပြီး အရေအတွက်အားဖြင့် 1,770,384 (29.37%) ယောက်ဖြစ်ပါသည်။ ဒုတိယနှင့်တတိယရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးတိုင်းပြည်များမှာ Brazil နှင့် Russia တို့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 498,440 (8.27%) နှင့် 396,575 (6.58%) ယောက်တို့ဖြစ်ပါသည်(Fig_02)။

COVID-19 ရောဂါကြောင့်သေဆုံးမှု့အား ဝင်ငွေအုပ်စုအလိုက်လေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 103,781 ယောက်ဖြင့် USA မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 28,834 ယောက်ဖြင့် Brazil မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် အရေအတွက် 5,164 ယောက်ဖြင့် India မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် အရေအတွက် 249 ယောက်ဖြင့် Afghanistan တို့သည်သေဆုံးမှု့အမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_03)။

COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အား တစ်ကမ္ဘာလုံးအနေဖြင့်လေ့လာကြည့်တွင် သေဆုံးမှု့အများဆုံးတိုင်းပြည်မှာ USA ဖြစ်ပြီး အရေအတွက်အားဖြင့် 103,781 (28.13%) ယောက်ဖြစ်ပါသည်။ ဒုတိယနှင့်တတိယသေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည်များမှာ United_Kingdom နှင့် Italy တို့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 38,376 (10.40%) နှင့် 33,340 (9.04%) ယောက်တို့ဖြစ်ကြပါသည်(Fig_04)။

ဝင်ငွေအုပ်စုအလိုက် COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည် 10 ခုအားရွှေးထုတ်ပြီးနောက် နိင်ငံအလိုက်သေဆုံးနှုန်းအားလေ့လာကြည့်ရာ၌ မြင့်ဆုံးဝင်ငွေအုပ်စုတွင် 18.99% ဖြင့် France မှလည်းကောင်း ၊ အလယ်အလတ်အမြင့်ဝင်ငွေအုပ်စုတွင် 11.17% ဖြင့် Mexico မှလည်းကောင်း ၊ အလယ်အလတ်အနိမ့်ဝင်ငွေအုပ်စုတွင် 6.10% ဖြင့် Indonesia မှလည်းကောင်း၊ အနိမ့်ဆုံးဝင်ငွေအုပ်စုတွင် 24.84% ဖြင့် Yemen တို့သည်သေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်များဖြစ်ပါသည်(Fig_05)။

COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည် 10 ခုအားရွှေးထုတ်ပြီးနောက် ထိုတိုင်းပြည်တစ်ခုချင်းအလိုက်သေဆုံးနှုန်းအားတွက်ထုတ်ကြည့်ရာတွင် France သည်သေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်ဖြစ်ပြီး 18.99% ဖြစ်ပါသည်။ ထို့နောက် 16.25% ဖြင့် Belgium သည်လည်းကောင်း၊ 14.33% ဖြင့် Italy တို့သည်ဒုတိယနှင့်တတိယသေဆုံးနှုန်းအမြင့်ဆုံးတိုင်းပြည်များဖြစ်ကြောင်းလေ့လာတွေ့ရှိရသည်။ COVID-19 ရောဂါကြောင့်သေဆုံးသူအရေအတွက်အများဆုံးတိုင်းပြည်ဖြစ်သော USA ၏သေဆုံးနှုန်းမှာ 5.86% ဖြစ်ပါသည်(Fig_06)။

တစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကြောင့်အနည်းဆုံးပျမ်းမျှသေဆုံးနှုန်းမှာ 20-01-2020 တွင် 1.26% ဖြစ်ပြီးအမြင့်သေဆုံးနှုန်းမှာ 25-04-2020 တွင် 7.28% ကြောင်းလေ့လာတွေ့ ရှိရပါသည်(Fig_07)။

တစ်ကမ္ဘာလုံး၌ COVID-19 ရောဂါကူးဆက်ခံရသူနှင့်သေဆုံးသူအရေအတွက်အား နေ့အလိုက်လေ့လာကြည့်ရာတွင် 31-05-2020 သည်ရောဂါကူးဆက်ခံမှု့အများဆုံးနေ့ဖြစ်ပြီး အရေအတွက်အားဖြင့် 127,605 ယောက်ဖြစ်ပါသည်။ 16-04-2020 သည်သေဆုံးသူအရေအတွက်အများဆုံးနေ့ဖြစ်ခဲ့ပြီး 10,520 ယောက်သေဆုံးကြောင်းလေ့လာတွေ့ရှိရပါသည်(Fig_08)။


In [22]:
myan_df = pd.read_excel('covid\covid_19.xlsx', index_col='Case_no').drop('Is_Checked', axis=1)
myan_df.Adult.replace({0:'Minor', 1:'Majority'}, inplace=True)
myan_df.Hospital.replace({'South Okkalapa Women & Children Hospital':
                          'South Okkalapa Specialist Hospital'}, inplace=True)
m_start_date = myan_df.Confirm_date.min().strftime('%d-%m-%Y')
m_last_date = myan_df.Confirm_date.max().strftime('%d-%m-%Y')
number_of_patients = myan_df.Age.count()
number_of_periods = (covid_df.dateRep.max() - myan_df.Confirm_date.min()).days + 1
average_rate = number_of_patients / number_of_periods
age_min = myan_df.Age.min()
age_max = myan_df.Age.max()
print(f'start_date: {m_start_date}', f'last_date case found : {m_last_date}', sep='\n')
print(f'Total number of patients: {number_of_patients}')
print(f'Total number of periods: {number_of_periods}')
print(f'Average confirm cases per day: {average_rate:.2f}')
print(f'Minimum_age: {age_min}', f'Maximum_age : {age_max}', sep='\n')
myan_df.head() 
start_date: 23-03-2020
last_date case found : 30-05-2020
Total number of patients: 224
Total number of periods: 70
Average confirm cases per day: 3.20
Minimum_age: 1.5
Maximum_age : 87.0
Out[22]:
Age Gender Adult Is_Travel_History Country Hospital Admission_date Confirm_date Condition Address State Coordinate Lat Long Infection_type Case_relative Case_relative_no Is_Q Is_citizen Remark
Case_no
1 36.0 Male Majority Yes USA Tedim General Hospital 2020-03-21 2020-03-23 Recovery Tedim Town Chin 23.3689, 93.6508 23.3689 93.6508 Foreign No - No Yes National
2 26.0 Male Majority Yes England Wai Bar Gi Hospital 2020-03-23 2020-03-23 Recovery Hmawbi Township Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - Yes Yes National
3 26.0 Male Majority Yes England Wai Bar Gi Hospital 2020-03-23 2020-03-25 Recovery Insein Township Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - No Yes National
4 33.0 Male Majority Yes USA Kandaw Nadi Hospital 2020-03-25 2020-03-27 Recovery Chanmyathazi Township Mandalay 21.9454, 96.1123 21.9454 96.1123 Foreign No - No Yes Dual citizen
5 69.0 Male Majority Yes Australia, Singapore Wai Bar Gi Hospital 2020-03-25 2020-03-27 Death Mingala Taungnyunt Township Yangon 16.9205, 96.1565 16.9205 96.1565 Foreign No - No Yes National


In [23]:
cd_df = myan_df.groupby('Confirm_date')['Gender'].count()
cd_df.index = cd_df.index.strftime('%d-%m-%Y')
cd_df.name = 'Total'
pop_max_day = cd_df.idxmax()
cmax_pop = cd_df.loc[pop_max_day]
print(f'Day: {pop_max_day}', f'Number of confirm cases: {cmax_pop}', sep='\n')
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
ax.bar(cd_df.index, cd_df, color='steelblue')
for tup in cd_df.reset_index().itertuples():
    x = tup.Index-0.15 if tup.Total < 10 else tup.Index-0.34
    y = tup.Total
    ax.text(x, (y-0.82 if y > 1 else y-0.65), f'{tup.Total}', color='white')
ax.set_xlim(-0.8, len(cd_df)-0.2)
ax.set_ylabel('Number of case')
ax.set_xlabel('Fig_09')
ax.set_title(f'COVID-19 Daily total case for Myanmar from {m_start_date} to {last_date}', y=1.035)
ax.xaxis.set_label_coords(0.5, -0.18)
fig.autofmt_xdate(rotation = 45);
Day: 14-04-2020
Number of confirm cases: 22


In [24]:
n = 5
count, bin_edges = np.histogram(myan_df.Age, bins=n)
age_idx = count.argsort()
portion = count/count.sum() * 100
print(myan_df.Age.sort_values().values, count, bin_edges, portion, sep='\n')
gender_df = myan_df.Gender.value_counts().reset_index()
gender_df.columns = 'Gender', 'Total'
gender_df['Proportion'] = gender_df.Total / number_of_patients * 100
m_prop = gender_df.query('Gender=="Male"').iloc[0,-1]
f_prop = gender_df.query('Gender=="Female"').iloc[0,-1]
gender_df
[ 1.5  4.   7.   8.   9.  10.  10.  12.  15.  17.  18.  18.  18.  18.
 18.  19.  19.  19.  19.  20.  20.  20.  20.  20.  20.  20.  21.  21.
 21.  21.  21.  22.  22.  22.  22.  23.  23.  23.  23.  23.  24.  24.
 24.  24.  24.  24.  24.  24.  24.  24.  25.  25.  25.  25.  26.  26.
 26.  26.  26.  26.  26.  27.  27.  27.  28.  28.  28.  28.  28.  28.
 28.  29.  29.  29.  29.  29.  29.  30.  30.  31.  31.  31.  31.  31.
 31.  31.  31.  31.  32.  32.  32.  32.  32.  32.  32.  32.  33.  33.
 33.  33.  33.  34.  34.  35.  35.  35.  35.  35.  35.  35.  35.  36.
 36.  36.  37.  37.  38.  38.  38.  38.  38.  38.  39.  39.  39.  39.
 39.  39.  40.  40.  40.  40.  41.  41.  41.  41.  42.  42.  43.  43.
 43.  43.  43.  43.  43.  44.  44.  44.  44.  44.  44.  44.  45.  45.
 45.  45.  45.  46.  46.  46.  47.  47.  47.  47.  47.  48.  48.  49.
 49.  49.  49.  50.  50.  50.  51.  52.  52.  52.  52.  53.  54.  54.
 54.  54.  55.  56.  57.  57.  57.  58.  58.  58.  60.  60.  60.  60.
 61.  61.  62.  62.  63.  63.  63.  63.  63.  63.  65.  65.  65.  65.
 66.  66.  67.  68.  69.  75.  77.  78.  78.  80.  84.  85.  85.  87. ]
[15 96 68 36  9]
[ 1.5 18.6 35.7 52.8 69.9 87. ]
[ 6.69642857 42.85714286 30.35714286 16.07142857  4.01785714]
Out[24]:
Gender Total Proportion
0 Male 126 56.25
1 Female 98 43.75


In [25]:
adult_df = myan_df.Adult.value_counts().reset_index()
adult_df.columns = 'Adult', 'Total'
adult_df['Proportion'] = adult_df.Total / number_of_patients * 100
maj_prop = adult_df.query("Adult=='Majority'").iloc[0,-1]
min_prop = adult_df.query("Adult=='Minor'").iloc[0,-1]
adult_df
Out[25]:
Adult Total Proportion
0 Majority 214 95.535714
1 Minor 10 4.464286


In [26]:
condition_df = myan_df.Condition.value_counts().reset_index()
condition_df.columns = 'Condition', 'Total'
condition_df.set_index('Condition', inplace=True)
condition_df.loc['Normal', 'Total'] = condition_df.loc['Normal', 'Total'] - 7
condition_df.loc['Recovery', 'Total'] = condition_df.loc['Recovery', 'Total'] + 7
condition_df['Proportion'] = condition_df.Total / number_of_patients * 100
condition_df.reset_index(inplace=True)
_, rq, rec_prop = condition_df.query("Condition=='Recovery'").iloc[0]
_, dq, dth_prop = condition_df.query("Condition=='Death'").iloc[0]
condition_df
Out[26]:
Condition Total Proportion
0 Recovery 138 61.607143
1 Normal 80 35.714286
2 Death 6 2.678571


In [27]:
infection_df = myan_df.Infection_type.value_counts().reset_index()
infection_df.columns = 'Infection_type', 'Total'
infection_df['Proportion'] = infection_df.Total / number_of_patients * 100
loc_prop = infection_df.query("Infection_type=='Local'").iloc[0,-1]
for_prop = infection_df.query("Infection_type=='Foreign'").iloc[0,-1]
infection_df
Out[27]:
Infection_type Total Proportion
0 Local 155 69.196429
1 Foreign 69 30.803571


In [28]:
q_df = myan_df.Is_Q.value_counts().reset_index()
q_df.columns = 'Is_Q', 'Total'
q_df['Proportion'] = q_df.Total / number_of_patients * 100
y_prop = q_df.query("Is_Q=='Yes'").iloc[0,-1]
n_prop = q_df.query("Is_Q=='No'").iloc[0,-1]
q_df
Out[28]:
Is_Q Total Proportion
0 Yes 165 73.660714
1 No 59 26.339286


In [29]:
fig, ((ax1, ax2, ax3), (ax4, ax5, ax6))= plt.subplots(2, 3, figsize=(15, 10))
myan_df.Age.plot.hist(bins=n, xticks=bin_edges, color='steelblue', ax=ax1)
ax1.set_ylabel('Number of patients')
ax1.set_xlim(myan_df.Age.min()-1, myan_df.Age.max()+1)
ax1.yaxis.set_label_coords(-0.13, 0.5)
ax1.set_title('Age of Patients', y=1.035)
xs = ['Gender', 'Adult', 'Condition', 'Infection_type', 'Is_Q']
palettes = {'Gender': ['orange', 'steelblue'], 'Adult': ['orange', 'steelblue'],
            'Condition': ['red', 'green', 'steelblue'], 'Infection_type': ['orange', 'steelblue'],
            'Is_Q': ['orange', 'steelblue']}
axs = [ax2, ax3, ax4, ax5, ax6]
orders = {'Gender': ['Female', 'Male'], 'Adult': ['Minor', 'Majority'],
          'Condition':['Death', 'Recovery', 'Normal'], 'Infection_type': ['Local', 'Foreign'], 
          'Is_Q': ['No', 'Yes']}
titles = {'Gender': 'Gender of Patients', 'Adult': 'Adult of Patients', 'Condition': 'Condition of Patients',
          'Infection_type': 'Infection type of Patients', 'Is_Q': 'Quarantine vs Not'}

for col, ax in zip(xs, axs):
    sns.categorical.countplot(col, data=myan_df, palette=palettes[col], ax=ax, order=orders[col])
    ax.set_title(titles[col], y=1.035)
    ax.set(xlabel=None, ylabel=None) if ax!=ax4 else ax.set(xlabel=None, ylabel='Number of patients')
    ax.yaxis.set_label_coords(-0.13, 0.5) if ax==ax4 else None
                          
plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.4)
fig.text(.5, 0.925, f'\nCOVID-19 Patients of Myanmar are analysed by each attribute from {m_start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_10', fontdict={'size':'x-large', 'ha':'center'});


In [30]:
tsp_df = myan_df.query('State=="Yangon"').Address.value_counts().reset_index()
tsp_df.columns = 'Township', 'Total'
tsp_df.sort_values(['Total', 'Township'], ignore_index=True, inplace=True)
tsp_df.Township = tsp_df.Township.str.replace(' Township', '')
In [31]:
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
ax.bar(tsp_df.Township, tsp_df.Total, color='steelblue', width=0.9) 
for tup in tsp_df.itertuples():
    x = tup.Index-0.1 if tup.Total < 10 else tup.Index-0.25
    y = tup.Total
    ax.text(x, (y-1.4 if y > 1 else y-0.9), f'{tup.Total}', color='white')
ax.set_xlim(-.8, len(tsp_df)-0.2)
ax.set_ylabel('Number of patients')
ax.set_xlabel('Fig_11')
ax.set_title(f'\nCOVID-19 patients in each area of Yangon from {m_start_date} to {last_date}', y=1.035)
fig.autofmt_xdate(rotation = 45);


In [32]:
rec_df = pd.read_excel('covid\covid_19.xlsx', sheet_name='rel_data', index_col='Case_no')
rec_df.query('Condition=="Recovery"', inplace=True)
merge_df = myan_df[['Confirm_date', 'Age', 'Gender', 'Address']].merge(rec_df, left_index=True, right_index=True)
merge_df.drop(['Time', 'Condition'], axis=1, inplace=True)
merge_df['rec_per'] = (merge_df.Date - merge_df.Confirm_date).dt.days
merge_df['age_grp'] = pd.cut(merge_df.Age, 6)
merge_df['rec_mask'] = merge_df.rec_per.apply(lambda x: 'Over_30' if x > 30 else 'Within_30')
avg_rec_periods = merge_df.rec_per.mean()
tot_recovery = len(merge_df)
min_rec = merge_df.rec_per.min()
max_rec = merge_df.rec_per.max()
print(f'Total_recovery_patients: {tot_recovery:}')
print(f'average_recovery_periods: {avg_rec_periods:.2f}')
print(f'minimum_recovery_periods: {min_rec}')
print(f'maximum_recovery_periods: {max_rec}')
merge_df.head()
Total_recovery_patients: 132
average_recovery_periods: 23.48
minimum_recovery_periods: 11
maximum_recovery_periods: 47
Out[32]:
Confirm_date Age Gender Address Date rec_per age_grp rec_mask
Case_no
1 2020-03-23 36.0 Male Tedim Town 2020-04-29 37 (30.0, 44.25] Over_30
2 2020-03-23 26.0 Male Hmawbi Township 2020-04-29 37 (15.75, 30.0] Over_30
3 2020-03-25 26.0 Male Insein Township 2020-04-09 15 (15.75, 30.0] Within_30
4 2020-03-27 33.0 Male Chanmyathazi Township 2020-04-08 12 (30.0, 44.25] Within_30
6 2020-03-28 29.0 Male Insein Township 2020-04-28 31 (15.75, 30.0] Over_30


In [33]:
summary_gen_rec = merge_df.groupby('Gender')['rec_per'].describe()
summary_gen_rec
Out[33]:
count mean std min 25% 50% 75% max
Gender
Female 62.0 22.548387 7.495742 11.0 16.00 22.0 29.50 42.0
Male 70.0 24.300000 9.786637 12.0 15.25 22.0 31.75 47.0


In [34]:
fig, [(ax1, ax2), (ax3, ax4)]= plt.subplots(2, 2, figsize=(15, 10))
n2=7
for gen, ax in zip(["Male", "Female"], [(ax1, ax3), (ax2, ax4)]):
    temp_df = merge_df.loc[merge_df.Gender==gen]
    sns.boxplot(x= 'rec_per', y='Gender', data=temp_df, color='orange', ax=ax[0])
    _, bin_edges = np.histogram(temp_df.rec_per, n2)
    temp_df.rec_per.plot.hist(bins=n2, color='steelblue', ax=ax[1], xticks=bin_edges)
    ax[0].set_xlabel(None)
    ax[0].set_ylabel(None)
    ax[0].set_title(f'Box plot for {gen}', y=1.045)
    
    ax[1].set_xlabel('Recovery periods')
    ax[1].set_ylabel('Number of recovery patients' if ax[1]==ax3 else None)
    ax[1].set_title(f'Histogram for {gen}', y=1.045)

plt.subplots_adjust(top=0.85, wspace=0.3, hspace=0.3)
fig.text(.5, 0.925, f'\nCOVID-19 recovery patients of Myanmar from {m_start_date} to {last_date}',
         fontdict={'size':'x-large', 'ha':'center'})
fig.text(.5, 0.05, 'Fig_12', fontdict={'size':'x-large', 'ha':'center'});


In [35]:
gen_age_summary = merge_df.groupby(['Gender', 'age_grp']).describe()
gen_age_summary
Out[35]:
Age rec_per
count mean std min 25% 50% 75% max count mean std min 25% 50% 75% max
Gender age_grp
Female (1.414, 15.75] 3.0 8.333333 1.527525 7.0 7.500 8.00 9.000 10.0 3.0 22.000000 6.082763 15.0 20.00 25.0 25.50 26.0
(15.75, 30.0] 24.0 23.916667 3.786896 18.0 21.000 23.50 27.250 30.0 24.0 20.958333 6.510721 13.0 15.75 21.0 23.50 39.0
(30.0, 44.25] 14.0 36.214286 4.543441 31.0 32.250 35.00 39.750 44.0 14.0 26.000000 8.866532 15.0 17.00 28.0 32.00 42.0
(44.25, 58.5] 12.0 52.333333 4.905161 45.0 48.500 52.50 57.000 58.0 12.0 22.666667 8.037790 11.0 15.00 23.0 30.00 35.0
(58.5, 72.75] 5.0 63.400000 3.577709 60.0 60.000 63.00 66.000 68.0 5.0 24.000000 8.746428 12.0 20.00 23.0 32.00 33.0
(72.75, 87.0] 4.0 81.250000 5.678908 75.0 77.250 81.50 85.500 87.0 4.0 18.250000 2.986079 15.0 16.50 18.0 19.75 22.0
Male (1.414, 15.75] 2.0 5.750000 6.010408 1.5 3.625 5.75 7.875 10.0 2.0 27.500000 2.121320 26.0 26.75 27.5 28.25 29.0
(15.75, 30.0] 19.0 23.315789 3.464946 17.0 20.500 24.00 26.000 29.0 19.0 24.526316 9.500692 13.0 15.50 25.0 31.00 46.0
(30.0, 44.25] 31.0 37.096774 4.323231 31.0 33.000 37.00 40.500 44.0 31.0 22.806452 9.658914 12.0 15.00 18.0 30.50 47.0
(44.25, 58.5] 10.0 51.700000 3.198958 47.0 49.250 52.00 53.750 57.0 10.0 24.600000 10.046558 14.0 15.75 22.0 32.50 43.0
(58.5, 72.75] 6.0 64.166667 1.834848 62.0 63.000 64.00 65.000 67.0 6.0 32.833333 10.666146 17.0 25.50 36.5 40.75 43.0
(72.75, 87.0] 2.0 78.500000 2.121320 77.0 77.750 78.50 79.250 80.0 2.0 15.000000 1.414214 14.0 14.50 15.0 15.50 16.0


In [36]:
fig, ax= plt.subplots(1, 1, figsize=(14, 8))
sns.boxplot(x='age_grp', y='rec_per', hue='Gender', data=merge_df, palette=['steelblue', 'orange'], ax=ax)
ax.set_xlabel('Age groups\nFig_13')
ax.set_ylabel('Recovery periods')
ax.set_title(f'Recovery patients are analysed by Age groups and Gender', y=1.045)
ax.xaxis.set_label_coords(0.5, -0.07);


In [37]:
rec_gen_df = (merge_df.rec_mask.value_counts()/tot_recovery*100)
within_30 = rec_gen_df.loc['Within_30']
over_30 = rec_gen_df.loc['Over_30']
within_30, over_30
Out[37]:
(75.75757575757575, 24.242424242424242)


In [39]:
state_df = myan_df.State.value_counts().reset_index()
state_df.columns = 'State', 'Total'
state_min = state_df.Total.min()
state_max = state_df.Total.max()
state_df['Proportion'] = state_df.Total / number_of_patients * 100
state_df['norm'] = np.log(state_df.Total)
st_name, st_prop = state_df.Total.iloc[0], state_df.Proportion.iloc[0]
state_df
Out[39]:
State Total Proportion norm
0 Yangon 171 76.339286 5.141664
1 Chin 9 4.017857 2.197225
2 Mandalay 8 3.571429 2.079442
3 Sagaing 7 3.125000 1.945910
4 Bago (West) 7 3.125000 1.945910
5 Nay Pyi Taw 3 1.339286 1.098612
6 Shan (South) 3 1.339286 1.098612
7 Shan (East) 3 1.339286 1.098612
8 Kayin 2 0.892857 0.693147
9 Rakhine 2 0.892857 0.693147
10 Ayeyarwady 2 0.892857 0.693147
11 Magway 2 0.892857 0.693147
12 Shan (North) 2 0.892857 0.693147
13 Mon 1 0.446429 0.000000
14 Kachin 1 0.446429 0.000000
15 Tanintharyi 1 0.446429 0.000000


In [41]:
myan_map = folium.Map(location=[19.9940,96.0864],
                      tiles='StamenToner',
                      zoom_start=5)
folium.Choropleth(
    geo_data='myanmar(original).json',
    data=state_df,
    columns=['State', 'norm'],
    bins=4,
    key_on='feature.properties.ST',
    nan_fill_color='white',
    line_color='black',
    fill_color='Paired', 
    fill_opacity=1, 
    line_opacity=0.5,
    legend_name ='COVID-19',
    name="COVID-19 patients of each state",
    overlay=True,
    highlight = True).add_to(myan_map)
folium.LayerControl().add_to(myan_map)
myan_map.save('Myanmar_covid-19_map.html')
myan_map
Out[41]:


In [42]:
myan2_map = folium.Map([19.9940,96.0864],zoom_start=5)
cluster = plugins.MarkerCluster().add_to(myan2_map)
host_lst = ['Naypyitaw General Hospital', 'Kengtung General Hospital', 'Magway Regional Hospital',
            'Yangon General Hospital', 'Sagaing General Hospital']
host_lst2 = ['Mawlamyine General Hospital', 'Myitkyina General Hospital']
for t in myan_df.reset_index().itertuples():
    html=f'''<div style="font-size:9pt; background-color:steelblue; color:white;">
                <div style="padding:3.5px 0; line-height:1.4;">
                    <b style="padding:0 7px;">Case_no
                        <span  style="padding: 0 1px 0 30.75px;">:</span>
                    </b>{t.Case_no:02d}<br>
                    <b style="padding:0 7px;">Age
                        <span  style="padding: 0 1px 0 54.35px;">:</span>
                    </b>{t.Age}<br>
                    <b style="padding:0 7px;">Gender
                        <span  style="padding: 0 1px 0 36px;">:</span>
                    </b>{t.Gender}<br>
                    <b style="padding:0 7px;">Condition
                        <span  style="padding: 0 1px 0 23.5px;">:</span>
                    </b>{t.Condition}<br>
                    <b style="padding:0 7px;">Address
                        <span  style="padding: 0 1px 0 34px;">:</span>
                    </b>{t.Address}<br>
                    <b style="padding:0 7px;">State
                        <span  style="padding: 0 1px 0 49px;">:</span>
                    </b>{t.State}<br>
                    <b style="padding:0 7px;">Hospital
                        <span  style="padding: 0 1px 0 32px;">:</span>
                    </b>{t.Hospital}<br>
                </div>
             </div>
          '''
    width = (304 if t.Hospital == 'South Okkalapa Specialist Hospital' else 282 if t.Hospital in host_lst2
                 else 271 if t.Hospital in host_lst else 251)
    ifram=folium.IFrame(html, width=width, height=135)
    popup=folium.Popup(ifram)
    icon=folium.Icon(color='green' if t.Condition == 'Recovery' else 'cadetblue' 
                                   if t.Condition != 'Death' else 'red')
    folium.Marker([t.Lat, t.Long], popup=popup, icon=icon).add_to(cluster)
myan2_map
Out[42]:



23-03-2020 မှ 31-05-2020 အထိမြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရသောလူအရေအတွက်မှာ 224 ယောက်ဖြစ်ပြီး၊ 6 ဦးသေဆုံး၍ ရောဂါကင်းစင်သွားသူ 138 ဦးရှိပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရသူများတွင် အသက် 1 နှစ် 6 လသည်အသက်အငယ်ဆုံးဖြစ်ပြီး အသက်အကြီးဆုံးမှာ 87 နှစ်ဖြစ်ကြောင်းတွေ့ရှိရသည်။တစ်နေ့လျှင်ပျမ်းမျှ 3.20 ယောက်ရောဂါကူးစက်ခံနေရပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကူးစက်ခံရမှု့အများဆုံးနေ့မှာ 14-04-2020 ဖြစ်ပြီးအရေအတွက်အားဖြင့် 22 ယောက်ဖြစ်ကြောင်းတွေ့ရှိရသည်။

ရောဂါကူးစက်ခံရသူအရေအတွက်အများဆုံးအသက်အပိုင်းအခြားမှာ 15.4 မှ 19.9 နှစ်အကြားဖြစ်ပြီး 96 (42.86%) ယောက်ဖြစ်ပါသည်။ ဒုတိယအများဆုံးမှာ 19.9 မှ 24.3 နှစ်အကြားဖြစ်ပြီး 68 (30.36%) ယောက်ဖြစ်ပါသည်။ ရောဂါကူးစက်ခံရမှု့၏ 56.25% မှာအမျိုးသားများဖြစ်ပြီး အမျိုးသမီးများ၏ရောဂါကူးစက်ခံရနှုန်းမှာ 43.75% ဖြစ်ပါသည်။

အသက် 18 နှစ်မှအထက်ရောဂါကူးစက်ခံရသောနှုန်းမှာ 95.54% ဖြစ်ပြီး အသက် 18 နှစ်အောက်ရောဂါကူးစက်ခံရသောနှုန်းမှာ 4.46% ဖြစ်ပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါကြောင့်သေဆုံးနှုန်းမှာ 2.68% ဖြစ်ပြီး ရောဂါပျောက်ကင်းမှု့နှုန်းမှာ 61.61% ကြောင်းတွေ့ရှိရသည်။ ရောဂါကူးစက်ခံရသူများ၏ 30.80% သည်ပြည်ပမှကူးစက်ခံရသူများဖြစ်ပြီး ပြည်တွင်းကူးစက်ခံရသောနှုန်းမှာ 69.20% ဖြစ်ကြောင်းလေ့လာတွေ့ရှိရပါသည်။ ရောဂါကူးစက်ခံရသူများ၏ 73.66% သည်အသွားအလာကန့်သတ်ထားသူများဖြစ်ပြီး 26.34% သည်အသွားအလာကန့်သတ်ထားခြင်းမရှိသူများဖြစ်ကြာင်းတွေ့ရှိရသည်။

မြန်မာနိင်ငံ၌ရောဂါကူးစက်ခံရသူအများဆုံးရှိသောဒေသမှာ ရန်ကုန်တိုင်းဒေသကြီးဖြစ်ပြီး 171 (76.34%) ယောက်ဖြစ်ပါသည်။ ရန်ကုန်တိုင်းဒေသကြီးတွင် အင်းစိန်မြို့နယ်သည် ရောဂါဖြစ်ပွါးမှု့အများဆုံးဖြစ်ပြီး အရေအတွက်အားဖြင့် 47 ယောက်ဖြစ်ပါသည်။ မြန်မာနိင်ငံ၌ COVID-19 ရောဂါမဖြစ်ပွါးသောနေရာအဖြစ် ကယားပြည်နယ်၊ ဧရာဝတီတိုင်းဒေသကြီးနှင့်ပဲခူး(အရှေ့)တို့သာကျန်ရှိတော့ကြောင်းကိုတွေ့ရှိရပါသည်။

မြန်မာနိင်ငံ၌ COVID-19 ရောဂါခံစားရသောလူနာများ ရောဂါကင်းစင်ဖို့ရန်ပျမ်းမျှကြာချိန်သည် 23.48 ရက်ဖြစ်ပါသည်။ ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်မှာ 11 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 47 ရက်ဖြစ်ကြောင်းတွေ့ရှိရပါသည်။ COVID-19 ရောဂါခံစားရသော အမျိုးသမီးများ၏ ရောဂါကင်းစင်အနိမ့်ဆုံးကြာချိန်သည် 11 ရက်ဖြစ်ပြီး 42 ရက်သည်အမြင့်ဆုံးကြာချိန်ဖြစ်ကြောင်းတွေ့ရှိပါသည်။ အမျိုးသားများ၏ COVID-19 ရောဂါကင်းစင်ရန်အနိမ့်ဆုံးကြာချိန်မှာ 12 ရက်ဖြစ်ပြီး အမြင့်ဆုံးကြာချိန်မှာ 47 ရက်ဖြစ်ပါသည်။ အသက်အုပ်စု (1.414, 15.75] တွင်အမျိုးသမီးများသည် အမျိုးသားများထက်ရောဂါလျင်မြန်စွာပျောက်ကင်းကြောင်းတွေ့ရှိရပြီး (72.75, 87.0] အုပ်စုတွင် အမျိုးသားများသည် အမျိုးသမီးများထက် ရောဂါပျောက်ကင်းမှု့မြန်ဆန်ကြောင်းတွေ့ရှိရသည်။ COVID-19 ရောဂါပျောက်ကင်းသူစုစုပေါင်း၏ 75.76% သည်ရက်သုံးဆယ်အတွင်ရောဂါပျောက်ကင်းပြီး 24.24% သည်ရက်သုံးဆယ်ကျော်မှ ရောဂါပျောက်ကင်းကြောင်း တွေ့ရှိရပါသည်။



In [44]:
c_no_str = ''
myan_iter = myan_df.query("Condition=='Recovery'").index
for c_no in myan_iter:
    c_no_str += f'C_{c_no}, '

မှတ်ချက်

  1. MOHS မှထုတ်ပြန်ချက်တွင် မည်သူ့ထံမှတဆင့်ရောဂါကူးစက်ခံရသည်ကို လူနာအမှတ်စဥ်ဖြင့်သော်လည်းကောင်း၊ လူနာအမှတ်စဥ်မပါ၍သော်လည်းကောင်းဖော်ပြလေ့ရှိပါသည်။ ထို့ကြောင့် တဆင့်ရောဂါကူးစက်ခံရမှု့ကိုဖော်ပြသောပုံသည် ရရှိသောသတင်းအချက်အလက်အပေါ်အခြေခံ၍ရေးဆွဲထားသောကြောင့် ပြည့်စုံသည်ဟုမဆိုနိင်ပါ။
  1. MOHS မှထုတ်ပြန်ချက်တွင် ရောဂါကင်းစင်သွားသူ 138 ဦးရှိသည်ဟုဖော်ပြသော်လည်း လူနာအမှတ်စဥ်ဖြင့်ဖော်ပြသည့်အရေအတွက်မှာ 131 ယောက်သာရှိပါသည်။ ထိုလူနာအမှတ်စဥ်များမှာ C_1, C_2, C_3, C_4, C_6, C_7, C_8, C_9, C_11, C_12, C_14, C_15, C_18, C_19, C_20, C_21, C_22, C_24, C_25, C_26, C_27, C_28, C_29, C_30, C_32, C_33, C_34, C_35, C_36, C_38, C_40, C_41, C_43, C_44, C_45, C_46, C_47, C_48, C_49, C_50, C_51, C_52, C_53, C_54, C_55, C_56, C_57, C_58, C_59, C_60, C_62, C_63, C_64, C_65, C_66, C_67, C_68, C_69, C_70, C_71, C_72, C_73, C_74, C_75, C_77, C_78, C_79, C_81, C_82, C_83, C_84, C_85, C_87, C_88, C_89, C_90, C_92, C_95, C_96, C_97, C_98, C_99, C_102, C_103, C_104, C_105, C_107, C_108, C_109, C_112, C_114, C_115, C_116, C_117, C_118, C_119, C_120, C_121, C_122, C_125, C_126, C_127, C_132, C_134, C_138, C_141, C_142, C_143, C_144, C_145, C_146, C_147, C_150, C_151, C_153, C_154, C_156, C_157, C_164, C_165, C_167, C_168, C_171, C_172, C_174, C_178, C_179, C_180, C_183, C_184, C_193 တို့ဖြစ်ပါသည်။
  1. ECDC မှ COVID-19 နှင့်ပတ်သက်သောသတင်းအချက်အလက်အား မြန်မာစံတော်ချိန်ညနေ 06:00 ဝန်ကျင်၌ရယူခဲ့ပါသည်။
  1. 01-06-2020 05:10:00 AM အထိတစ်ကမ္ဘာလုံး၌ ရောဂါကူးစက်ခံရသူအရေအတွက်မှာ 6,112,902 ယောက်ဖြစ်ပြီး သေဆုံးသူအရေအတွက်မှာ 370,416 ယောက်ဖြစ်ပါသည်။

Author: MIN KYAW ZAW
E-mail: minkyawzraw@gmail.com
LinkedIn: www.linkedin.com/in/minkyawzaw